# 设置最低 CMake 版本
cmake_minimum_required(VERSION 3.10)

# 设置项目名称和语言
project(ElasticsearchTest LANGUAGES CXX)

# 设置 C++ 标准为 C++17
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED True)

# 添加源文件
set(SOURCES main.cc)

# 查找 cURL 库（elasticlient 的依赖）
find_package(CURL REQUIRED)

# 查找系统安装的 JsonCpp
find_package(jsoncpp REQUIRED)

# 跳过 elasticlient 的 jsoncpp 子模块
add_definitions(-DJSONCPP_NO_INSTALL)

# 添加 elasticlient 子目录
add_subdirectory(elasticlient elasticlient_build)

# 添加 include 目录
include_directories(${PROJECT_SOURCE_DIR})


# 创建可执行文件
add_executable(main ${SOURCES})

# 链接库
target_link_libraries(main PRIVATE 
    jsoncpp_lib       # 系统自带的 JsonCpp 库
    CURL::libcurl     # cURL 库
    elasticlient      # elasticlient 库
)

# 设置可执行文件的输出目录
set_target_properties(main PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/bin)
